#pragma once

#include <memory>
#include "TrueText/OutlineInfo.h"
#include <boost/smart_ptr/shared_ptr.hpp>

namespace TrueText {

class Drawer;
class FontImpl;

class FontEffectOutlineImpl
{
public:
	FontEffectOutlineImpl();
	FontEffectOutlineImpl(const FontEffectOutlineImpl& rhs);
	const FontEffectOutlineImpl& operator=(const FontEffectOutlineImpl& rhs);
	~FontEffectOutlineImpl();

	bool IsEnabled() const;
	void Enable(bool fEnable);

	const OutlineInfo& GetOutlineInfo() const;
	void SetOutlineInfo(const OutlineInfo& value);
public:
	boost::shared_ptr<Drawer> CreateDrawer(boost::shared_ptr<FontImpl> font, boost::shared_ptr<Drawer> textDrawer) const;
private:
	bool enabled;
	OutlineInfo outlineInfo;
};

}